// import axios from "axios";
// import { showMessage } from "./status"; // 引入状态码

// // 设置接口超时时间
// axios.defaults.timeout = 60000;
// axios.defaults.baseURL = process.env.NODE_ENV === 'development' ? '/api' : 'http://192.168.0.98:9998/';  // 接口地址(开发环境与生产环境的区分)

// const token = () => {
//     if (sessionStorage.getItem("token")) {
//         return sessionStorage.getItem("token");
//     } else {
//         return sessionStorage.getItem("token");
//     }
// };

// const getCookie = (name) => {
//     const value = `; ${document.cookie}`;
//     const parts = value.split(`; ${name}=`);
//     if (parts.length === 2) return parts.pop().split(';').shift();
// };

// //请求拦截
// axios.interceptors.request.use(
//     (config) => {
//         // 配置请求头
//         config.headers["Content-Type"] = "application/json;charset=UTF-8";
//         config.headers["token"] = token();
//         //配置令牌等
//         return config;
//     },
//     (error) => {
//         return Promise.reject(error);
//     }
// );

// // 响应拦截
// axios.interceptors.response.use(
//     (response) => {
//         return response;
//     },
//     (error) => {
//         const { response } = error;
//         if (response) {
//             // 请求已发出，但是不在2xx的范围
//             showMessage(response.status); // 传入响应码，匹配响应码对应信息
//             return Promise.reject(response.data);
//         } else {
//             uni.showToast({
//                 title: '网络连接异常,请稍后再试!',
//                 duration: 2000,
//                 type: "default",
//                 icon: "none",
//             });
//         }
//     }
// );

// //请求并导出
// export function request(data) {
//     return new Promise((resolve, reject) => {
//         const promise = axios(data);
//         //处理返回
//         promise
//             .then((res) => {
//                 resolve(res.data);
//             })
//             .catch((err) => {
//                 reject(err.data);
//             });
//     });
// }


import axios from "axios";
import { showMessage } from "./status"; // 引入状态码
// 设置接口超时时间
axios.defaults.timeout = 60000;
axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded';

// console.log('当前环境', import.meta.env.VITE_APP_ENV);
// if (import.meta.env.VITE_APP_ENV === "production") {
//     axios.defaults.baseURL = import.meta.env.VITE_APP_BASE_URL;
// }
axios.defaults.baseURL = process.env.NODE_ENV === 'development' ? '/api' : 'http://192.168.0.98:9998/'; 

const token = () => {
    const storedToken = localStorage.getItem("token");
    // console.log("token:", localStorage.getItem("token"));
    if (storedToken) {
        return storedToken;
    } else {
        // console.warn("Token 不存在！");
        return ""; // 或者返回 null，具体视后端需求而定
    }
};

const getCookie = (name) => {
    const value = `; ${document.cookie}`;
    const parts = value.split(`; ${name}=`);
    if (parts.length === 2) return parts.pop().split(';').shift();
};

//请求拦截
axios.interceptors.request.use(
    (config) => {
        // 配置请求头
        config.headers["Content-Type"] = "application/json;charset=UTF-8";
        const authToken = token();
        if (authToken) {
            config.headers["Authorization"] = authToken;
        } else {
            // console.warn("请求头中未包含 Token");
        }
        //配置令牌等
        return config;
    },
    (error) => {
        return Promise.reject(error);
    }
);

// 响应拦截
axios.interceptors.response.use(
    (response) => {
        // console.log('响应成功:', response.request.responseURL);
        // console.log('响应成功:', response);
        // 判断token是否过期
        if (response) {
            if (response.status === 997 && response.request.responseURL.slice(-5) !== 'login') {
                // 未授权，通常是 Token 过期或无效
                // ElMessage.error("登录状态已过期，请重新登录！");
                localStorage.removeItem("token");
                localStorage.removeItem("userName");
                localStorage.removeItem("role_id");
                router.push('/login');
            }
        }

        return response; // 确保返回整个响应对象，或根据需求返回 response.data
    },
    (error) => {
        if (error.response) {
            // 状态码不是 2xx
            // console.error('响应错误:', error.response);
            showMessage(error.response.status);
            return Promise.reject(error.response.data || error.response);
        } else if (error.request) {
            // 请求已发送，但没有收到响应
            // console.error('请求未收到响应:', error.request);
            // ElMessage.warning("网络连接异常，请检查您的网络设置或稍后再试！");
            return Promise.reject(error.request);
        } else {
            // 其他错误
            // console.error('未知错误:', error.message);
            // ElMessage.error("请求过程中发生未知错误，请稍后再试！");
            return Promise.reject(error.message || 'Unknown Error');
        }
    }
);
export function request(config) {
    // console.log('发送请求:', config);
    return axios(config)
        .then((response) => {
            // console.log('收到响应:', response);
            return response.data; // 或根据需求返回整个响应对象
        })
        .catch((err) => {
            console.error('请求失败:', err);
            return Promise.reject(err);
        });
}